package au.com.finalconcept.roo.addon.behaviours;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Trigger annotation for this add-on.
 * 
 * <p>
 * <b>Note:</b> That this annotation will cause your object implement the
 * OnPrePersist interface The OnPrePersist interface contains two methods void
 * prePersistImpl() and void preMergeImpl(). These methods will be created for
 * you and stored in the ITD. They will be called by prePersist and perMerge
 * respectivly. These two methods, prePersist and preMerge are annotated with
 * the
 * 
 * @PrePersist and @PreMerge annotations. If you also wish to perform some work
 *             during the prePersist and preMerge phase you sould implement your
 *             own versions of prePersistImpl and preMergeImpl.
 * 
 *             If these methods are detected in your class, then this annotation
 *             will <b>not</b> create them.
 *             </p>
 * @since 1.1
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface RooSlugable {
    /**
     * A comma seperated list of field names to use to build the slug. Note that
     * the field names MUST match the casing as defined by your class
     * 
     * @return
     */
    String fields();
}
